Mario Improvement 3 Version 0.95 Source Code
Copyright (C) 1999-2000 Lincolnsoft.
July 22, 2000

Introduction
============
OK, this is just a simple readme file that will tell you what you need to
compile MI3 and how to compile it, and a brief description of what's in each
source file.  Maybe later I'll add some things to this file about how MI3
works to give you an easier time modifying the source code, but right now I
don't have much time so I have to keep this short.


Source code license
===================
You may use, modify, redistribute, and generally hack it about in any 
way you like, as long as you give me credit for the original MI3 source 
code. I'd also appreciate it if you send me any major changes or improvements
you make, but you are not required to do this.   If your changes or 
improvements are included in a future version of MI3, I will give you 
credit for them.


Required to compile and link MI3
================================
DJGPP compiler for DOS, v2.01 (as far as I know, it will not work with
any other DOS compilers.)  This compiler is open source freeware and is
available from http://www.delorie.com/.

Allegro for DOS/DJGPP v3.11 (it may or may not work with the latest WIP
version).  By Shawn Hargreaves.  Available from
http://www.talula.demon.co.uk/allegro/.

BGUI library (gives MI3 the Win9x look, and provides some extra objects
that are not included in the regular Allegro GUI routines).  Available
from http://www.concentric.net/~skis/.


Optional, recommended but not required
======================================
UPX - I use this to compress the MI3 executable.  You can also use the
DJP compressor that comes with DJGPP, but it's not as good as UPX is.
Available at:  http://upx.tsx.org/.

RHIDE - I used this IDE to write most of MI3. It should be linked to
somewhere on the DJGPP site.  It has lots of options, including an
integrated debugger.


To compile
==========
Make sure you have DJGPP, Allegro, and BGUI installed.  Now go to a DOS
prompt and type this:

gcc m3i.c -o m3i.exe -lbgui -lalleg

This will compile a basic, non debug, nonoptimized version of MI3.  You
can also open m3i.c in RHIDE and go to the Options/Libraries menu,
and type "bgui" and "alleg" into the first two free spaces (and check them),
and then compile it.


The m3i.dat file
================
This file contains all of the graphics used by MI3.  To make MI3 work,
after compiling it (and optionally UPX compressing it) you have to
append the m3i.dat file to the executable using the Allegro exedat utility,
like this:

exedat -c m3i.exe m3i.dat

which will append a compressed version of the m3i.dat file onto the
executable.


Source code file contents
=========================
m3i.c - The main MI3 source code file.  I'll admit: some areas of the source
code are messy and confusing (notably, the redraw_screen() and edit_level()
functions), mostly due to the fact that this was the first practical program
I ever wrote (and something I wrote to learn how to program C).
objects.h - Header file with a huge array containing all the properties of
all the objects in Super Mario Bros. 3, the strings for the names of each
object, etc.
nessmb3.h - Header file containing offsets of levels for the NES version of
SMB3.  Thanks to MarioExpert for providing the offsets for the "lost levels",
the hammer bros. levels, and the pipe levels.
allstars.h - Header file containing offsets of levels for the Super Mario
Allstars version of SMB3.  Thanks to MarioExpert for providing these
offsets!
m3idefs.h - Basic typedefs and definitions used by MI3.


Contact
=======
LincolnSoft

Email:
abe@lincolnsoft.com

Web site:
http://www.lincolnsoft.com/

I'd appreciate it if you send me any changes, modifications or improvements
you make to MI3.  I might include them in a future version and give you
credit for them.

























